跳到主要内容

3.3-node 操作 mongo

Create by fall on 18 Nov 2020 Recently revised in 13 09 2023

数据库操作

node 连接 mongodb 时,需要安装驱动,使用 mongodb

先从 npm 上安装 mongodb

npm install mongodb 安装驱动

建立连接

const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://localhost:27017'
MongoClient.connect(url,(err,db)=>{
if(err) throw err
console.log('成功连接数据库')
db.close() // 关闭数据库连接
})

创建集合

const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://127.0.0.1:27017'
MongoClient.connect(url,(err,db)=>{
if(err) throw err
console.log('成功连接数据库')
const dbTest = db.db('test') // 使用 test 数据库
const createSetName= 'underWare'
dbTest.createCollection(createSetName, (err,res)=>{
if(err){
throw err
}
console.log('创建 '+createSetName+'集合');
db.close()
})
})

插入数据

插入单条数据

const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://127.0.0.1:27017'
MongoClient.connect(url, (err, db) => {
if (err) throw err
console.log('成功连接数据库')
const dbTest = db.db('test')
const addObj = { name: "菜鸟教程", url: "www.runoob" };
dbTest.collection("underWare").insertOne(addObj, (err, res) => {
if (err) throw err;
console.log("文档插入成功");
db.close();
});
})

插入多条数据

const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://127.0.0.1:27017'
MongoClient.connect(url, (err, db) => {
if (err) throw err
console.log('成功连接数据库')
const dbTest = db.db('test')
const addObj = { name: "菜鸟教程", url: "www.runoob" }
dbTest.collection("underWare").insertOne(addObj, (err, res) => {
if (err) throw err
console.log("文档插入成功")
db.close()
});
})

更新数据

更新一条数据

const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://127.0.0.1:27017'
MongoClient.connect(url, (err, db) => {
if (err) throw err
console.log('成功连接数据库')
const underWare = db.db('test').collection('underWare')
// underWare.updateMany()用于更新多条数据,
underWare.updateOne({ type: "cn" },{$set: { "url" : "全部都清空" }}, (err, res) => {
if (err) throw err
console.log("更新成功");
underWare.find({ type: "cn" }).toArray(function (err, result) {
if (err) throw err;
console.log(result);
db.close();
})
})
})

updateOne 会把查找到的第一条数据设置为相应的值

删除数据

db.db('test').collection("site").deleteOne({type:'en'}, function(err, obj) {
if (err) throw err;
console.log("文档删除成功");
console.log(obj)
db.close();
});
// 删除多条数据
db.db('test').collection("site").deleteMany({type:'en'}, function(err, obj) {
if (err) throw err;
console.log("文档删除成功");
console.log(obj)
db.close();
});

数据库的同步操作

通过 async 实现数据库的同步操作

const MongoClient = require('mongodb').MongoClient
const url = 'mongoURL'
async function dataOperate(){
let connect = null
try {
connect = await MongoClient.connect(url)
const underWare = connect.db('test').collection('underWare')
await underWare.insertOne({'site':'mysite.com'})
}
catch(err){
console.log(err)
}
}